package mysql8学习.高级.第19章_数据库备份与恢复;

/**
 * mysqldump是MySQL提供的一个非常有用的数据库备份工具。
 *
 * mysqldump 命令执行时，可以将数据库备份成一个文本文件，
 * 该文件中实际上包含多个CREATE和INSERT语句，使用这些语句可以重新创建表和插入数据。
 * ●查出需要备份的表的结构，在文本文件中生成一个CREATE语句
 * ●将表中的所有记录转换成一条INSERT语句。
 *
 *
 *   备份的文件并非一定要求后缀名为.sql, 例如后缀名为.txt的文件也是可以的。
 * 2.1 备份数据库
 *  mysqldump -u 用户名 -h主机名 -p 密码 待备份的数据库名称[表名,[表名]] > 备份文件名称.sql
 *
 * 2.2 备份全部数据库
 *  mysqldump -u 用户名 -h主机名 -p 密码 --all-databases > 备份文件名称.sql
 *  mysqldump -u 用户名 -h主机名 -p 密码 -A > 备份文件名称.sql
 *
 * 2.3 备份部分数据库
 *  mysqldump -u 用户名 -h主机名 -p 密码 --databases 数据库1 [数据库2] ... [数据库n] > 备份文件名称.sql
 *  mysqldump -u 用户名 -h主机名 -p 密码 -B 数据库1 [数据库2] ...[数据库n] > 备份文件名称.sql
 *
 * 2.4 备份部分表
 *  mysqldump -u 用户名 -h主机名 -p 密码 数据库 [表名1 ... [表名n]]  > 备份文件名称.sql
 *
 * 2.5备份单表的部分数据
 *  有些时候一张表的数据量很大，我们只需要部分数据。这时就可以使用 --where选项了。
 *  where后面附带需要满足的条件。
 *  举例:备份student表中id小于10的数据:
 * mysqldump -u 用户名 -h主机名 -p 密码 数据库 表名 --where="id < 10"  > 备份文件名称.sql
 * 2.6排除某些表的备份
 * 如果我们想备份某个库,但是某些表数据量很大或者与业务关联不大，这个时候可以考虑排除掉这些表，
 * 同样的，选项  --ignore-table 可以完成这个功能。 指明不要那个表
 * mysqldump -u 用户名 -h主机名 -p 密码 数据库 --ignore-table=数据库.表名 > 备份文件名称.sql
 *
 * 2.7只备份结构或只备份数据
 *   只备份结构的话可以使用 --no-data 简写为-d选项;
 *   只备份数据可以使用 --no-create-info 简写为-t 选项。
 * ●只备份结构
 * mysqldump -u 用户名 -h主机名 -p 密码 数据库 --no-data > 备份文件名称.sql
 * ●只备份数据
 * mysqldump -u 用户名 -h主机名 -p 密码 数据库 --no-create-info > 备份文件名称.sql
 * 2.8备份中包含存储过程、函数、事件
 * mysqldump 备份默认是不包含存储过程，自定义函数及事件的。
 * 可以使用 --routines 或 -R 选项来备份存储过程及函数，使用 --events 或 -E 参数来备份事件。
 * 举例:备份整个 atguigu 库, 包含存储过程及事件:
 * ●使用下面的SQL可以查看当前库有哪些存储过程或者函数
 * mysql> SELECT SPECIFIC_NAME , ROUTINE_TYPE， ROUTINE_SCHEMA FROM
 * information_schema.Routines
 * WHERE ROUTINE_SCHEMA=”atguigu";
 *   备份中包含存储过程、函数、事件
 * mysqldump -u 用户名 -h主机名 -p 密码 -R -E --databases 数据库 > 备份文件名称.sql
 *
 */
public class B1_mysqldump逻辑备份 {
}
